# -*- coding:utf-8 -*-
"""
Created on 31/lug/2011

@author: casa
"""

# ProblemSize ranges from 1 (small) to 10 (large) problem
ProblemSize = 1

Whide = 0.5

TransientRatio = 0.3

WeightLoadCost = (0, 30, 100)

SafetyResourceRatio = (0.5, 0.6, 0.7)
MachineMoveCost = (1, 3, 10)

SpreadService = (2, 4, 6)
MaxServicesDependRatio = 0.2

ProcessMoveCost = (0, 30, 100)

TargetBalanceCost = (3, 5, 10)
WeightBalanceCost = (1, 6, 20)

WeightProcessMoveCost = (1, 30, 100)
WeightServiceMoveCost = (1, 30, 100)
WeightMachineMoveCost = (1, 30, 100)

def checkParameters():
    def checkTriangular(aTriangular):
        assert len(aTriangular) == 3
        assert 0 <= aTriangular[0] <= aTriangular[1] <= aTriangular[2]
        pass
    def checkTriangularRatio(aTriangular):
        assert len(aTriangular) == 3
        assert 0.0 <= aTriangular[0] <= aTriangular[1] <= aTriangular[2] <= 1.0
        pass
    
    assert 1<=ProblemSize <= 10
    assert 0.3 <= Whide <= 0.8
    assert 0.0 <= TransientRatio <=1.0
    
    checkTriangular(WeightLoadCost)
    
    checkTriangularRatio(SafetyResourceRatio)
    
    checkTriangular(MachineMoveCost)
    
    checkTriangular(SpreadService)
    assert 0.0 <= MaxServicesDependRatio <= 1.0
    
    checkTriangular(ProcessMoveCost)
    
    checkTriangular(TargetBalanceCost)
    
    checkTriangular(WeightBalanceCost)
    
    checkTriangular(WeightProcessMoveCost)
    checkTriangular(WeightServiceMoveCost)
    checkTriangular(WeightMachineMoveCost)
    pass